#!/bin/bash

VERSION="1.0.0.8"
OPNOTESPORT=9999
[ "$OPNOTESIP" ] || OPNOTESIP=192.168.254.72
OPNOTESFILE=/current/down/opnotes.txt
OPNOTESBACKUP=/current/down/opnotes.bak
ERROUT=/current/tmp/getopnotes.err

if [[ $1 = "-h" ]]; then
  echo "Called by scrubhands."
  echo "`basename $0` version $VERSION"
  exit
fi
if [[ $1 = "-v" ]]; then
  echo "`basename $0` version $VERSION"
  exit
fi

WHICHINTF=""
IPARG=`echo $1 | grepip`
[ "$IPARG" ] && WHICHINTF="-s $IPARG"
[ "$PRIVATEIP" ] && WHICHINTF="-s $PRIVATEIP"



if [[ ! `which nc 2>/dev/null` ]]; then
	echo "No nc in PATH."
	exit
fi

if [[ -e $OPNOTESFILE ]]; then
	echo "Moving $OPNOTESFILE to $OPNOTESBACKUP"
	mv -f $OPNOTESFILE $OPNOTESBACKUP
fi
export BYTESRCVD=0
export SRCIP=""
while [ $BYTESRCVD -le 0 ] ; do
  echo "Listening on port $OPNOTESPORT to get Windows opnotes (will timeout in 15 seconds...)"
  nc -w 15 -vv -l $WHICHINTF -n -p $OPNOTESPORT > $OPNOTESFILE 2>$ERROUT
  cat $ERROUT
  export SRCIP=`grep "connect to .*from .* \[" $ERROUT | sed "s/.*connect to .*from .* \[//g" | sed "s/\].*//g"`
  BYTESRCVD=`grep rcvd $ERROUT | sed "s/.*rcvd //g"`
  [ "$BYTESRCVD" ] || BYTESRCVD=0
  if [ $BYTESRCVD -le 0 ] ; then
    echo -n "Got 0 bytes for Windows opnotes, want to try again? [Y] "
    read ans
    ans=${ans:0:1}
    ans=`echo $ans | tr 'A-Z' 'a-z'`
    if [ "$ans" = "n" ] ; then
        if [[ -e $OPNOTESBACKUP ]]; then
            mv -f $OPNOTESBACKUP $OPNOTESFILE
        fi
        break
    fi
  fi
done
dos2unix $OPNOTESFILE

echo SRCIP=$SRCIP
